- web6047 - (2021/09/10(金) 現在、システム調整中のため、一部の表示がおかしいかもしれません)


[横幅 1024px以下]
管理人がこの時刻↓に聞いている音楽とその評価:
2024/04/28 日 21:19:49
伊藤賢治 _|_ サガ フロンティア オリジナル・サウンドトラック _|_ 針の城
Play list: 高評価
Genre: サウンドトラック
Good: 0
No Good: 0

There is no canvas.

web6047 2023年 10月

プログラミングやRPG(作るほう)が好きな人の日記

個人的な趣味(プログラミング、イラスト、電子回路)のページです。

日記を中心に、パソコン関係について、いろいろ細かく説明することがあります。

読んでいるときに、言葉の左下に   水色の・を発見したら、

そこにマウスカーソルを合わせたり、タッチすると、言葉の意味を表示します。


自己紹介: 自己紹介

48才、男、B型

電子機器を製造する工場で、派遣で働いています。

プログラミングが好きで小学校5年生のころからずっと続けています。

■趣味: プログラミング、ゲーム音楽を集めて聴く、イラストを描く、映画、アニメ、ガンプラ  (興味の強い順)

■将来の夢は5つくらい持っていますが、生きてる間に実現できそうにありません。


■私が使っているペンネーム(ハンドルネーム)は新しい順に

ペ ンネーム(ハンドルネーム) いつごろ 場 所
台形→三角形→平行四辺形
理由があってペンネームを何度か変えていて右端が現在です。
現在(多) Yahoo Japan
d_kawakawa 現在(少) どこでも
cookiepurinman、cookiepudingman、cookiepuddingman 現在(極少) Twitter
かわ、kawa 30年前 パソコン通信


■私への連絡手段:

ごくまれにしかツイートしませんが、私の twitter アカウントはこちらです。

https://twitter.com/cookiepudingman

何かメッセージをくれれば、返事すると思います。

返事がないときはメッセージに気付いていないんだと思います。そのときはすみません。


■管理人用:

Windows ケア 手順

タッチイベント チェック用

(Windows11)画面が黒くなったら、


自己紹介: 最近見ているアニメ

「呪術廻戦」(TVer再放送)


最近 ChatGPT と話した内容

電子機器組立て2級 暗記ツール … 国家検定の電子機器組立て2級の 暗記ツール(基板上配置)です。1級でも役立つと思います。

「3DCGの原理」による3DCGプログラミング … 3DCGを自分の計算でプログラムしましょう。


このサイトで最も興味を引く部分: (そのつもり)

最近、私は個人的に、「RPG のコマンドメニュー部分のプログラム」を、中高生向けに、ステップバイステップ方式で教えようとしています。

ステップ同士のプログラム上の変化をマーキングして表示したり、バルーンメッセージを使って説明を付けたりと、いろいろ工夫をしていますが、はっきり いってわかりにくいんじゃないかと思っています。

Mini-NAVIGATION
RPGメニューを作る1
基本のプログラムからはじめて、サブメニューを表示するまで
Step 1~8
RPGメニューを作る2(記事としては4)
メニューの項目に、付加情報(装備中のe記号や、店の価格)を表示。
Step 9、10、11
RPGメニューを作る3(記事としては5)
メニューの項目を段組表示する
Step 12、13


日記: 日記  (日記がこのサイトのメインコンテンツです。上の記事ほど新しい記事です) 

2023/10/25(水)

RPG の試作品 その2

fig.
▲untitled figure

左図は、前回の「マップ実装+町人システム」のプログラムに、「メニューシステムの手順書」を使ってメニューシステムを追加したところです。

「手順書」通りに行えば、「あるシステムに、新しく機能を追加する」という作業が容易に行えます。

私が RPG 開発を始めたのは小学 5 年生(11歳)のころで、これまでに多くの RPG に関するプログラムを作成してきましたが、今回、48 歳になって初めて作ることができたプログラムは

  • マップがスムーズスクロールして、
  • 町人が歩いていて、
  • メニューシステムがしっかり動いている、

という複数の機能をあわせ持ったプログラムです。

小学生のころはもちろん、高校生のときも、こういうプログラムを追いかけていたけど、当時は実現には遠く及びませんでした。

メニューシステムは複雑だし、スムーズスクロールは当時は至難の業でした。

また、町人が複数人歩くプログラムというのは、考えることすらありませんでした。

高校生のころが 17 歳だとして、48 歳になったらできるのだとすれば、30 年もの月日が必要だってことになります。

いやいや、「これくらい高校生でもできるでしょ?」というのが普通のプログラマーの見方だと思います。

しかし、

  • シンプルなプログラム
  • 拡張性の高いプログラム
  • 単発ではなく、何度も繰り返し作成可能なこと(ノウハウが完成されていること)

という条件を満たそうとすると、なかなか難しく、長い月日がかかってしまうのかもしれません。



fig.
▲untitled figure

メニューシステムに続いて、「メッセージ表示の手順書」を使って、メッセージを表示させたところです。

手順書の良いところは、このプログラム全体をまた 1 から作り直したとき、1 時間 ~ 1 時間半くらいで同じものができてしまうところです。



(訪問者のどんなニーズと この記事がつながるか)


2023/10/13(金)

RPG の試作品

この前も記事で書いた通り、最近は1つの RPG を作ろうとはしていなくて、RPG の一部のシステムを作る「手順書」を作ろうとしています。

一部のシステムを作って、数カ月すると、どんなしくみで、どんな手順でプログラムを作っていたのかを忘れてしまうので手順を記しておいたほうがよく、また、手順書があれば RPG の作り方が難しくてわからない少年・少女に教えることができます。

今日はその作り途中のその「手順書」を見ながら作った、いろいろな試作品のスクリーンショットをここに掲載しようと思います。


fig.
▲町人に話しかけている

今年(2023年)5月の初めごろ。

手順書を作ろうとしていなかったころの試作品です。

「RPG の基本形とはどんなプログラムなのか」というのを導き出そうとしていました。

フィールドマップから町に入ることができ、町に人がいる。

人に話しかけることができ、メッセージウィンドウが表示される。

…しかし、そういうシステムを作っても、数カ月たつと、その作り方を忘れてしまいます。

思い出しながら作るのは、非常に時間がもったいないです。

手順書を作ろうという発想はそこから始まっています。

基本形を導きたい→手順書を作ろう、この流れは当然のような気がします。

基本形という定まったものを作ろうとしているのですから。



fig.
▲手順書から作られた町人システム1

そして、この試作品から手順書を元に作るようになりました。

こういう「町を動く人々をどのようにプログラムするのか」、という手順書です。



fig.
▲手順書から作られた町人システム2

「町を動く人々をどのようにプログラムするのか」の手順書で作成した試作品2。



fig.
▲ウルティマみたい

タイトル画面からフィールド画面に切り替わるといった「画面遷移」を搭載した試作品。

「RPG の基本形がほしい」と思っていたので、全体的な手順書を作ろうとしました。

フィールドマップから町に入ることができる。

イベント部分を踏むと、イベントとしてテストメッセージが出る。

しかし、いきなり全体を作るのは難しく、全体の手順書は行き詰りました。

▼このタイトル画面からフィールドへ
▼Apple][ Ultima1


fig.
▲メッセージウィンドウ1

そこで、システムの部分ごとに手順書を作ることにしました。

メッセージウィンドウの試作品1。今年 2023年、7月の初めの頃です。

メッセージウィンドウはどのようにプログラムするのか。という手順です。

たかがメッセージウィンドウでも、しっかり作ろうとすると意外と長いプログラム(リンクは画像です)になります。



fig.
▲メッセージウィンドウ2

メッセージウィンドウの試作品2。

手順書を見ながら作成しつつ、気が付いた点を手順書へフィードバック、修正し、手順書をブラッシュアップしていきます。



fig.
▲メッセージウィンドウ3

メッセージウィンドウの試作品3。

メッセージウィンドウは、メッセージの途中で、

  • キー入力を待つ。
  • ゆっくりメッセージが表示される。
  • 表示の途中で一時停止してから、表示を再開する。
  • ウィンドウの下まで来たら、上へスクロールする。

などなど、複数の機能があります。



fig.
▲戦闘時のコマンドメニュー

手順書を元に作成した、メニューシステムの試作品。

今年(2023年)の8月の下旬ごろに作っていたものです。

メニューシステムは、

  • メッセージが表示された後の「はい/いいえ」選択メニュー
  • フィールド上で開くコマンドメニュー
    (コマンドを選んだらその場で実行される)
  • ターン制などの戦闘時のキャラクターごとのコマンドメニュー
    (各キャラクターの人数分のコマンドを選んだ後に、各キャラクターのコマンドが次々と実行される)
  • お店の商品選択メニュー(買い物メニュー)

などなどいろいろありますが、それらを1つのシステムでマルチに対応させるのが理想です。

似たようなシステムを複数作るのが普通の考え方ですが、ちょっと重いのでは(冗長)と思います。

同じシステムだけど実装の異なる複数のシステム(似たようなシステム)の共通点を見つけて、1つのシステムとする。しかもそのシステムはできる限りシンプルで、わかりやすく作られている。

▼「はい/いいえ」選択メニュー
▼フィールド上コマンドメニュー
▼戦闘時コマンドメニュー
▼お店の商品選択メニュー


これらは1つのシステムで実装されています。



fig.
▲フィールド上でのコマンドメニュー

手順書を元に作成した、メニューシステムの試作品2。




fig.
▲戦闘時のコマンドメニュー

手順書を元に作成した、メニューシステムの試作品3。



fig.
▲戦闘時のコマンドメニュー

手順書を元に作成した、メニューシステムの試作品4。

おなじ手順書から作成されるので、同じようなものが作成されます。

「ルインズドール」、「デスハウンド」というどこかかっこいいモンスター名は、「ルインズ」、「ドール」、「デス」、「ハウンド」、その他の、たくさんの名前の断片をテーブルの左と上の見出しセルに書いて、総当たりで結合させて、その中からカッコイイものを選びます。



fig.
▲マップ描画システム1

手順書を元に作成した、マップシステムの試作品1。

Microsoft Excel の作図機能でマップを作り、それを PNG 画像で保存します。

その PNG 画像を JavaScript でロードして、その画素の色を見て、「色とマップチップの対応表」からマップデータが作成されます。

Excel が作成する PNG 画像には、「アンチエイリアス」という、画素と画素の斜めの並びのギザギザを滑らかに見せるための補間画素があります。

そのアンチエイリアス(補間画素)を除去してギザギザの状態にしないと、「画素の色を見てマップデータを作成」がうまくできません。

左図はアンチエイリアスがしっかり除去されているかどうかを確認している画面です。

マップ上の細い赤枠部分にそのアンチエイリアスがあったことを示しています。

▼除去前 ▼除去後




fig.
▲マップ描画システム2

手順書を元に作成した、マップシステムの試作品2。

これもアンチエイリアス除去に関する試作品です。

アンチエイリアス除去は「RPGの基本形」ではありませんが、Excel の作図機能で手軽にマップを作成し、それを JavaScript で利用する、というのは「外せない機能だ」と思いました。

左図のようなチップの集合を1つ1つ配置していくのは大変だし、マップチップの並びの滑らかな曲線を Excel の作図で簡単に実現できるのは魅力です。

▼Excel で作図した世界地図



fig.
▲マップ描画システム3

手順書を元に作成した、マップシステムの試作品3。

なんとなく一番最初のゲームボーイの白黒画面を意識しました。(魔界塔士SaGaとか面白かったので)

スムーズスクロールができ、フィールド上の★部に乗ると、町へ移動できます。

左図は、上図の世界地図の一番左上の「ノルウェー」付近です。

左図のようなちゃちな画面でも、「ノルウェー」付近だと思って見ると、ドラマがわいてきませんか?



fig.
▲マップ描画システム4

手順書を元に作成した、マップシステムの試作品4。

壁と赤い石だたみのパターンは「パターンを1つ作ってマップ上に複数配置する(連射する)」という便利機能で作図されていますが、あまり凝ったシステムは「RPGの基本形」から逸脱するので、ほどほどにする必要があります。



fig.
▲マップ描画システム5

手順書を元に作成した、マップシステムの試作品5。

手順書の完成度を上げるために、プログラムを再作成、プログラムを再作成、プログラムを再作成、プログラムを再作成、、、結構苦しい。

問題は、いくら手順書を作っても、わかりやすく説明しても、少年・少女の中には、どうにも理解できない子もいるということで、、そういうお子さんは、投げ出すんじゃないか、と今から予想しています。

道はつづくよどこまでも。



fig.
▲「マップ+町人」のシステム

手順書を元に作成した、マップシステムの試作品6。

これが今現在、今日も作っていた試作品です。

「マップ+町人」のシステムです。

完成したマップシステムに、町人をどのようにプログラムして登場させるのか、という手順書です。

各町人は、上下左右にスムーズに移動します。壁と書かれた場所や、町の外へは移動しないようになっています。

どこまでのパフォーマンスがあるのかと思って、10人、20人、100人、400人と for 文を使ってたくさん登場させてみたところ、第 8 世代の core i5 では 400人以上、まだまだいけそうでした。

でも人によっては、もっと低スペックのパソコンで動かすので、その辺も考えなければなりません。

道はつづくよどこまでも。


実録「人口 400人の町」(mp4、10MB、1分)


(訪問者のどんなニーズと この記事がつながるか)


2023/10/7(土)

iTunes で買った曲 2曲

この前 9/20 の記事で書いた通り、私の職場では天井のスピーカーからポップスなどの音楽が一日中流れています。

また最近、ある曲が良いなと思いました。

その曲は最近の若い女性シンガーのようで、派手過ぎない、どこかまじめなところがあり、可愛らしい歌い方が特徴的で、人気があるんだろうなと思いました。


曲をネットで購入するためには、検索の手がかりとしてフレーズを聞き取る必要があります。

でも、歌声がなんと言っているのか聞き取れませんでした。

しかし同じ歌手の別の曲でフレーズを一部聞き取れました。


♪ 青い世界、好きなことを好きだと言う ~ (リンクはウェブ検索します)


これをウェブ検索すると、それが YOASOBI という歌手の『群青』という曲だと分かりました。

そして iTunes で「YOASOBI」を検索して、いくつかプレビューでアルバムを聞いていると、

最初に良いと思った曲が見つかりました。

『あの夢をなぞって』

でした。


そのほか、アルバムのプレビューを聞いていて結構良かったんですが、アルバムを買うにはちょっと今は出費がかさんでいるので買えません。

プレビューだけでも結構良かったので、何度も聞いていましたが、聴きたいと思うたびに「全曲プレビュー」ボタンを押すのは面倒なので、録音ソフトを使ってアルバムのプレビューを録音し、iTunes のライブラリに登録して聴くことにしました。

お金さえあれば、将来買うと思うので、ならば良いんじゃないかなと。

そして自分のパソコン上でプレビューを聴いていたんですが、「でもそれってまずいんじゃないだろうか」と思い、会話 AI の Google Bard に可否を聞いてみました。


Google Bard 公開リンク「全曲プレビューの録音の可否」


チャットしていて、「いけないことだ」と言われたので、作成したプレビューの録音は削除しました。

AI の指示で人間が動いた瞬間です。(「NHK スペシャル」の生態系ドキュメンタリーのナレーションのように、うれしそうにおごそかに)


そして、アルバムは買わずに、2曲買いました。

  1. あの夢をなぞって」255 円 (リンクは iTunes のウェブサイトへ)
  2. アイドル」255 円 (リンクは iTunes のウェブサイトへ)

合計 510 円也。

もし、アルバム3つ全部買ったとしたら 6,000 円くらいでした。


(訪問者のどんなニーズと この記事がつながるか)


2023/10/6(金)

”「Microsoft Edge」で対話的にAI画像を生成する”

「窓の杜」というサイトで、”「Microsoft Edge」で対話的にAI画像を生成する” という記事があって、記事と同じように AI 画像を作ってみました。


「魅力的なドラゴンテイマーの女性が「2024」という文字に向けてドラゴンに炎を吐かせている。アニメ調スタイルの年賀状。画像サイズは1920x1080。」

すると、2つ作成してくれました。

結構、日本アニメ風で安心な感じ。(よく見るとおかしいところもあるけど…)

※クリックすると、「Bing Image Creater」のサイトで、同じ画像を拡大表示します。


ちなみに、それを「Adobe Firefly」のほうで同じ言葉で作ってみると、かなり欧米風のイラスト。

欧米の方々は、こういうイラストでも満足していそうです。右上のとかは悪くない気がします。


そして、さらに Bing(Edge)のほうで続けてみました。

右のドラゴンの目がおかしいけど、クオリティが高い。。


窓の杜の記事の最後の画像は、「なるほど!」という感じでした。


ところで、会話 AI の「ChatGPT」は、言葉と言葉を「確率」でつなげています。

たとえば、「1 + 1=」という言葉に続く確率がもっとも高い言葉は「2」です。

だから ChatGPT は「2」だと答えるのであり、1+1を実際に考えて計算しているわけではありません。

そのため、「1232+4555=」という複雑な計算は世界中を探しても情報が少なくて、その言葉に続く言葉を ChatGPT は正しく見つけられません。

だから「その式に 似た式」の答えを引っ張り出してきて、「確率の高い言葉」として自信たっぷりに間違った答えを発言してしまいます。


私は AI 画像については詳しく知りませんが、AI 画像の場合も同じなんですかね?

「言葉で説明された場面」を実際に考えているのではなく、「その言葉に続く、確率の高い画像」というやり方で画像を作っているのでしょうか。

1 + 1 をその計算式としては認識していないというのと同じように、

目を目として認識していないから、「目がおかしい」という結果になるのかな、と思います。

もうちょっと詳しく、「それが式であれば、式とはこういうものだ(正しい答えを計算するものだ)」、「それが目であれば、目とはこういうものだ」という部分まで認知してもらうと、AI はさらに良いものになりそうです。


(訪問者のどんなニーズと この記事がつながるか)